/* Copyright 2010 Michael Wenders, michaelwenders <at> gmx <dot> de

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef CONFIG_H_
#define CONFIG_H_

#include "lcm_includes.h"

class LcmConfig
{
    private:
	string filename;

	/* some helper vars */
	int lineNumber;

	/* config options */
	string configDir;

	int port;
	string ip;

	int parseCoreOptions(string line);
	int parseNetOptions(string line);
	int parseLogOptions(string line);

	   public:
	/* Constructor & Destructor*/
	LcmConfig(string filename);
	~LcmConfig();

	/* Setter and Getter */
	void setFilename(string filename);
	string getFilename();

	void setPort(int port);
	int getPort();
	int checkPort(string port);

	void setIP(string ip);
	string getIP();
	int checkIP(string ip);

	void setConfigDir(string configDir);
	string getConfigDir();

	/* Other Methods */
	int loadAll();
	int loadFile();
	int setDefaults();
};

#endif /* CONFIG_H_ */
